package cn.trigram.math;

/**
 * 牛顿迭代法
 *
 * @see <a href="https://www.hanspub.org/journal/PaperInformation?paperID=50629">关于对牛顿迭代法的优化</a>
 */
public interface NewtonItrMethod<N extends Number> {

  /**
   * 原函数
   */
  N func(N x);

  /**
   * 导函数
   */
  N deriveFunc(N x);

  /**
   * 差商公式
   */
  N differenceQuotient(N x0, N x1);

  /**
   * 伪点公式
   */
  N fakePoint(N x0, N x1);

  N approximate(N x0, N x2, N X);

  N calc(N x0, N error);

}
